﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace GestorDeFlotasDesktop.AbmRol
{
    public partial class ROLModificacion : Form
    {
        Base cBase;
        Form ventanaPadre;
        DataTable miTabla;
        Button botonSeleccionar;

        public ROLModificacion(Base miBase , Form ventana )
        {
            miTabla = new DataTable();
            cBase = miBase;
            ventanaPadre = ventana;
            InitializeComponent();
        }

        private void ROLModificacion_Load(object sender, EventArgs e)
        {
            string Consulta =
                  "select distinct Nombre " +
                   "from ULTIMO_COMMIT.Funcionalidad";

            cBase.conBase.Open();
            System.Data.SqlClient.SqlCommand OrdenBase = new System.Data.SqlClient.SqlCommand(Consulta, cBase.conBase);
            System.Data.SqlClient.SqlDataReader result = OrdenBase.ExecuteReader();

            if (result.HasRows)
            {
                String[] Funcionalidades = new String[15];
                int i = 0;
                while (result.Read())
                {
                    // Cargo las funcionalidades
                    Funcionalidades[i] = (String)result.GetValue(0);
                    cmbBoxFuncionalidades.Items.Add((String)result.GetValue(0));
                    i++;
                }
            }
            cBase.conBase.Close();

            miTabla.Columns.Add("Rol");
            miTabla.Columns.Add("Funcionalidad");
            miTabla.Columns.Add("Seleccionar");
        }

        private void brnLimpiar_Click(object sender, EventArgs e)
        {
            textNombre.Clear();
            cmbBoxFuncionalidades.ResetText();
            cmbBoxFuncionalidades.SelectedItem = null;
            dataGridBusqueda.ClearSelection();
            this.dataGridBusqueda.DataSource = null;
            this.miTabla.Rows.Clear();

        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {


            this.miTabla.Rows.Clear();

            string Consulta =
                    "select R.Nombre as Rol, F.Nombre as Funcionalidades  " +
                    "from ULTIMO_COMMIT.Rol R inner join ULTIMO_COMMIT.Rol_Funcionalidad RF on R.ID_Rol=RF.ID_ROL " +
                    "inner join ULTIMO_COMMIT.Funcionalidad F on RF.ID_Funcionalidad = F.ID_Funcionalidad " +
                    "where R.Nombre like '%"+textNombre.Text+"%'";
            if (cmbBoxFuncionalidades.SelectedItem != null)
                Consulta += " and F.Nombre ='" +cmbBoxFuncionalidades.SelectedItem+ "'";
            cBase.conBase.Open();
            System.Data.SqlClient.SqlCommand OrdenBase = new System.Data.SqlClient.SqlCommand(Consulta, cBase.conBase);
            System.Data.SqlClient.SqlDataReader result = OrdenBase.ExecuteReader();

            if (result.HasRows)
            {

               
                while (result.Read())
                {
                    miTabla.Rows.Add((String)result.GetValue(0), (String)result.GetValue(1), this.NuevoBoton());

                }
                this.dataGridBusqueda.DataSource = miTabla;
                this.dataGridBusqueda.Show();
            }
            else MessageBox.Show("No se encontro resultado para la busqueda");
            cBase.conBase.Close();



        }
        private void ROLModificacion_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (ventanaPadre != null)
            {
                ventanaPadre.Visible = true;
            }
        }

        private void dataGridBusqueda_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }
        private Object NuevoBoton()
        {
            botonSeleccionar = new System.Windows.Forms.Button();
            this.botonSeleccionar.Text= "Seleccionar";
            this.botonSeleccionar.Location = new System.Drawing.Point(34, 89);
            this.botonSeleccionar.Size = new System.Drawing.Size(84, 13);
            this.botonSeleccionar.UseVisualStyleBackColor = true;
            return this.botonSeleccionar;
        }
            

    }
}
